home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / dskhrdldr.lha / DiskChange-Seg.s < prev    next >
Encoding:
Text File  |  1980-01-12  |  1.4 KB  |  100 lines

  1.     Opt    c-
  2.     Section    "DiskChecker",Code_c
  3.  
  4. Start    Movem.l    d0-d7/a0-a6,-(sp)     
  5.     Bsr    Initialize    
  6.     Lea    Drive(pc),a6
  7.     Move.w    d0,(a6)
  8.     Bsr    SelectDrive    
  9.     Moveq    #20,d0
  10.     Bsr    WaitRaster
  11.     Bsr    IncTrack
  12.     Moveq    #20,d0
  13.     Bsr    WaitRaster
  14.     Bsr    DecTrack    
  15.     Moveq    #20,d0
  16.     Bsr    WaitRaster
  17.     Btst    #2,$Bfe001
  18.     Bne    DiskIn    
  19.     Moveq    #-1,d0
  20.     Bra    DiskChecked    
  21. DiskIn    Moveq    #0,d0
  22. DiskChecked    Lea    ErrorCode(pc),a6
  23.     Move.l    d0,(a6)
  24.     Bsr    DeSelectDrive    
  25.     Bsr    RestoreSystem    
  26.     Movem.l    (sp)+,d0-d7/a0-a6 
  27.     Move.l    ErrorCode(pc),d0
  28.     Rts
  29.  
  30. Initialize    Lea    $Dff000,a6
  31.     Lea    AdkSav(pc),a0
  32.     Move.w    $10(a6),d1
  33.     Move.w    d1,(a0)
  34.     Move.w    #$7fff,$9e(a6)
  35.     Move.w    #$8100,$9e(a6)
  36.     Rts
  37.  
  38. SelectDrive    Move.w    Drive(pc),d1
  39.     And.w    #3,d1
  40.     Add.b    #3,d1
  41.     Nop
  42.     Nop
  43.     Nop
  44.     Bclr    d1,$Bfd100
  45.         Rts
  46.  
  47. DeSelectDrive    Move.w    Drive(pc),d1
  48.     And.w    #3,d1
  49.     Add.b    #3,d1
  50.     Nop
  51.     Nop
  52.     Nop
  53.     Bset    d1,$Bfd100
  54.         Rts
  55.  
  56. WaitDrive    Move.w    #20,d6
  57. WaitX    Move.w    #20,d0
  58.     Bsr    WaitRaster
  59.     Btst    #5,$Bfe001
  60.     Beq    NoWaitX
  61.     Dbf    d6,WaitX
  62. NoWaitX    Rts
  63.  
  64. WaitRaster    Move.b    $Dff006,d7
  65. WaitNextLine    Cmp.b    $Dff006,d7
  66.     Beq    WaitNextLine
  67.     Dbf    d0,WaitRaster
  68.     Rts
  69.  
  70. IncTrack    Bclr    #1,$Bfd100
  71.     Bra    DoTrack
  72.  
  73. DecTrack    Bset    #1,$Bfd100
  74.  
  75. DoTrack    Move.w    #1,d0
  76.     Bsr    WaitRaster
  77.             Bclr    #0,$Bfd100
  78.     Move.w    #1,d0
  79.     Bsr    WaitRaster
  80.             Bset    #0,$Bfd100
  81.             Bsr    WaitDrive
  82.     Rts
  83.  
  84. RestoreSystem    Lea    $Dff000,a6
  85.     Move.w    ADKsav(pc),d0
  86.             Bset    #15,d0
  87.             Move.w    d0,$9e(a6)
  88.             Rts
  89.  
  90. AdkSav    Dc.w    0
  91. Drive    Dc.w    0
  92. ErrorCode    Dc.l    0
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.